A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network the computing devices communicate data by dividing the data into small blocks called packets. Certain devices within the network, such as routers, maintain routing information that describes routes through the network. In this way, the packets may be individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
A client may request delivery of multimedia content over a network from a source using the Real-Time Streaming Protocol (RTSP). In this case, the client establishes a Transmission Control Protocol (TCP) connection to the source, typically using port 554, and requests the multimedia stream using RTSP. RTSP allows a number of options for transport layer protocols over which the actual audio/video streams may be sent. For example, the stream can be sent using Real-Time Control Protocol (RTCP)/Real-Time Transport layer protocol (RTP) over User Datagram Protocol (UDP). As another example, the stream can be interleaved over the established TCP connection. Another option is to deliver the data stream inside Hyper Text Transfer Protocol (HTTP) frame formats, since a firewall will typically allow HTTP traffic to pass through. RTCP/RTP over UDP may be preferred, since UDP is faster and less taxing on the streaming server than TCP. Moreover, UDP packets are smaller than TCP packets since UDP includes fewer reliability and congestion controls. UDP utilizes arbitrary port assignments for sending and receiving data.
However, due to its use of arbitrary ports, using UDP may present a problem in networks having firewalls, gateways, filters, intrusion detection devices or other security devices. In many cases, network administrators typically prefer to use a fixed set of ports through which traffic may enter and exit the network. As a result, a client may initially request that the data stream be delivered via UDP. Often the request times out or otherwise fails due to the intervening security devices. As a result, the client may issue another request for the data stream but request the data stream be delivered using TCP instead of UDP. Making multiple attempts to receive the multimedia content using different transport layer protocols is inefficient. Moreover, using TCP or HTTP for delivering multimedia content may introduce considerable latency and overhead into the network.